/**
 * 
 */
package fr.gfi.agraf.persistence.dao.impl;

import java.util.List;

import javax.persistence.NoResultException;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Repository;

import fr.gfi.agraf.persistence.dao.IPerimetreDAO;
import fr.gfi.agraf.persistence.entity.Perimetre;
import fr.gfi.agraf.utils.PropertiesUtils;

/**
 * @author Zakaria
 *
 */
@Repository
public class PerimetreDAO extends AbstractGenericDAO<Perimetre> implements IPerimetreDAO {

	private static final String HQL_PERIMETRE_SELECT_BY_UTILISATEUR_ID = "hql.perimetre.selectByUtilisateurId";
	/**
	 * Logger
	 */
	private final static Logger LOGGER = Logger.getLogger(PerimetreDAO.class);

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * fr.gfi.agraf.persistence.dao.IPerimetreDAO#getListePerimetreByUtilisateurID
	 * (java.lang.Long)
	 */
	public List<Perimetre> getListePerimetreByUtilisateurID(final Long idUtilisateur) {
		List<Perimetre> perimetreList = null;
		// Récupere la requete dans le fichier properties
		final String query = PropertiesUtils.getProperty(HQL_PERIMETRE_SELECT_BY_UTILISATEUR_ID);
		try {
			// Execute la query
			perimetreList = em.createQuery(query, Perimetre.class)
					.setParameter("idUtilisateur", idUtilisateur).getResultList();
		} catch (final NoResultException e) {
			LOGGER.error(e);
		}

		return perimetreList;
	}

}
